package com.module.ble.data.bean

import android.os.Parcelable
import androidx.room.ColumnInfo
import kotlinx.parcelize.Parcelize

/**
 *
 * 作者：sosou
 *
 * 版本：1.0
 *
 * 创建日期：2024/10/22
 *
 * 描述：
 *
 * 修订历史：
 *
 */
interface CusUnifyData {
    val mTime: Long
    val value: Number
    var createdTime: Long
    var sysStat : Int
}

@Parcelize
data class CusBleDeviceInfo(
    val bleName: String,
    val bleAddress: String,
    var connecteding :Boolean = false,
) : Parcelable

@Parcelize
data class ChartData(
    val heartRateList: MutableList<Int>,
    val restingRate: Int
): Parcelable


@Parcelize
data class CusChartData(
    val createdTime: Long = 0L,//毫秒时间戳
    var mValue: Float = 0f,//最大值
    var minValue: Float = 0f,//最小值
    val dayNum: Int = 0,//createdTime对应的天号
    var selectBg: Boolean = false,//背景
    var mColor: Int = 0,//颜色
    var mProportion: Float = 0f,//占比0~100%
    var mOrder: Int = 0,//顺序位置
    var timeLong: Int = 0,// 时长，单位分钟
    var status: Int = 0, // 睡眠质量 0,清醒(离床) 1:快速眼动 2:浅睡 3:深睡 4:卧床 5:未佩戴 101:小睡（自用） -999：未知（自用）
    val endTime: Long = 0L,//毫秒时间戳
    val exStr: String = "",//拓展用
): Parcelable

@Parcelize
data class SleepChartValueData (
    var timeLong: Int = 0,// 时长，单位分钟
    var status: Int = 0, // 0,离床  1:清醒 2:浅水 3:快速眼动 4:深睡
): Parcelable{
    val elementLevel: Int
        get() = when (status) {
            0, 1, 2, 3 -> status
            else -> 0  // 默认处理非法值
        }
}

// 数据类用于保存标签信息
data class XLabel(
    val text: String,    // 显示的文本
    val dayNumber: Int,  // 对应的天数
    val xPosition: Float // X轴位置（0-1之间的比例）
)

@Parcelize
data class HduCurSportData(
    val sportId: Long, // 运动ID，运动记录唯一ID，即运动开始时间的时间戳
    val time: Long, // 运动详情记录时间，即相对于运动开始时间的运动秒数偏移，单位：秒
    val step: Int = 0, // 实时步数，单位：步
    val calorie: Int = 0, // 实时运动消耗卡路里，单位：千卡
    val dist: Int = 0, // 实时距离，单位：米
    val pace: Double = 0.0, // 实时配速，单位：秒/千米
    val speed: Double = 0.0, // 实时速度，单位：千米/小时
    val cadence: Int = 0, // 实时步频，单位：步/分钟
    val hr: Int = 0, // 实时心率，单位：次/分钟，bpm
): Parcelable
